package drds.configuration.db.xml_mapping.dynamic_tag.tag_context;

import ognl.OgnlRuntime;

import java.util.Map;
import java.util.StringJoiner;


public class TagContext {

    public static final String parameter_key = "_parameter_";

    static {
        OgnlRuntime.setPropertyAccessor(TagContextMap.class, new TagContextPropertyAccessor());
    }

    private final TagContextMap tagContextMap = new TagContextMap();
    private final StringJoiner sql = new StringJoiner(" ");
    private int tagContextIndex = 0;

    //
    public TagContext(Object parameterObject) {
        tagContextMap.put(parameter_key, parameterObject);//init
    }

    public void put(String name, Object value) {
        tagContextMap.put(name, value);
    }

    public Map<String, Object> getTagContextMap() {
        return tagContextMap;
    }

    //
    public void sqlAppend(String sql) {
        this.sql.add(sql);
    }

    public String getSql() {
        return sql.toString().trim();
    }

    //
    public int getTagContextIndex() {
        return tagContextIndex++;
    }

}
